<?php

function __autoload($classe) {
    $pastas = array('aluno', 'curso', 'diciplina', 'inicio', 'matricula', 'professor', 'usuario');
    foreach ($pastas as $pasta):
        if (file_exists("./class/{$pasta}/{$classe}.class.php"))
            include_once "./class/{$pasta}/{$classe}.class.php";
    endforeach;
}

include_once './class/aluno/inicioAluno.class.php';
include_once './class/aluno/editarAluno.class.php.php';
include_once './class/professor/inicioProfessor.class.php';
include_once './class/professor/editarProfessor.class.php.php';
include_once './class/usuario/inicioUsuario.class.php';
include_once './class/usuario/editarUsuario.class.php.php';

$host = "mysql05.syncro.inf.br";
$dbname = "syncro14";
$user = "syncro14";
$password = "Muzzolon01";

header("Content-Type: text/plain");
$op = isset($_GET['op']) ? $_GET['op'] : 'logar';
$usuario = isset($_GET['user']) ? $_GET['user'] : null;
$senha = isset($_GET['pass']) ? $_GET['pass'] : null;
$opcao = isset($_GET['opcao']) ? $_GET['opcao'] : null;
$subop = isset($_GET['subop']) ? $_GET['subop'] : null;
$dados = isset($_GET['dados']) ? $_GET['dados'] : null;

$pdo = new PDO('mysql:host=' . $host . ';dbname=' . $dbname . '', $user, $password);


new Session();
switch ($op) {
    case 'inicio':
        inicio();
        break;

    case 'logar':
        if (!Session::getValue('logado')) {
            if ($usuario == null || $usuario == "") {
                retorna('0+O campo USU&Aacute;RIO n&atilde;o pode ficar em branco. <br/>Tente Novamente.');
            } else {
                if ($senha == null || $senha == "") {
                    retorna('0+O campo SENHA n&atilde;o pode ficar em branco. <br/>Tente Novamente.');
                } else {
                    $result = $pdo->query('SELECT email from usuario WHERE email like "' . $usuario . '"', PDO::FETCH_ASSOC);
                    if ($result->rowCount() != 1) {
                        retorna('0+Usu&aacute;rio n&atilde;o cadastrado. <br/>Tente Novamente.');
                    } else {
                        $result = $pdo->query('SELECT pass from usuario WHERE email like "' . $usuario . '"', PDO::FETCH_ASSOC);
                        $ret_usuario = $result->fetch();

                        if ($ret_usuario['pass'] != $senha) {
                            retorna('0+Senha Inv&aacute;lida. <br/>Tente Novamente.');
                        } else {
                            Session::setValue('logado', true);
                            loga("true+");
                        }
                    }
                }
            }
        } else {
            loga("'true+");
        }

        break;
    case 'logout':
        Session::freeSession();
        $conteudo = new inicio();
        retorna('0+' . $conteudo->carregar());
        break;

    case 'menu':
        if (Session::getValue('logado')) {
            switch ($opcao) {
                case'aluno':
                    if ($subop == null) {
                        $conteudo = new inicioAluno();
                        retorna("Aluno+" . $conteudo->carregar());
                    } else {
                        switch ($subop) {
                            case 'incluir':
                                $conteudo = new formularioAluno();
                                retorna("Aluno+" . $conteudo->carregar("§§§§§§§§§§§§0§"));
                                break;
                            case 'gravar':
                                $conteudo = new bancoDadosAluno();
                                $temp = explode("+", $conteudo->gravar($dados));
                                if ($temp[0] == 0) {
                                    retorna("0+Campo " . $temp[1] . " &Eacute; Inv&aacute;lido Ou N&atilde;o Preenchido.");
                                }
                                if ($temp[0] == 2) {
                                    retorna("0+Verifique a Data de Nascimento onde " . $temp[1] . " &Eacute; Inv&aacute;lido.");
                                } else {
                                    retorna("1+" . $temp[1] . "+" . $temp[2]);
                                }
                                break;
                            case "editar":
                                $conteudo = new editarAluno();
                                retorna("Aluno+" . $conteudo->carregar());
                                break;
                            case "edit":
                                $conteudo = new formularioAluno();
                                $banco = new bancoDadosAluno();
                                retorna("Aluno+" . $conteudo->carregar($banco->carregaformulario($dados)));
                                break;

                            case "listar":
                                $conteudo = new bancoDadosAluno();
                                retorna($conteudo->listar($dados));
                                break;
                            case "excluir":
                                $conteudo = new bancoDadosAluno();
                                retorna($conteudo->apagar($dados));
                                break;
                            case "importar":
                                $conteudo = new formularioAluno();
                                retorna("Aluno+" . $conteudo->importar());
                                break;
                            case "importarXml":
                                $conteudo = new bancoDadosAluno();
                                retorna("Aluno+" . $conteudo->importarXml($dados));
                                break;
                            case "gerarXml":
                                $conteudo = new bancoDadosAluno();
                                retorna($conteudo->gerarXml($dados));
                                break;
                            default :
                                retorna("ERRo+ERRO");

                                break;
                        }
                    }
                    break;
                case'professor':
                    if ($subop == null) {
                        $conteudo = new inicioProfessor();
                        retorna("Professor+" . $conteudo->carregar());
                    } else {
                        switch ($subop) {
                            case 'incluir':
                                $conteudo = new formularioProfessor();
                                retorna("Professor+" . $conteudo->carregar("§§§§§§§§§§§§0§"));
                                break;
                            case 'gravar':
                                $conteudo = new bancoDadosProfessor();
                                $temp = explode("+", $conteudo->gravar($dados));
                                if ($temp[0] == 0) {
                                    retorna("0+Campo " . $temp[1] . " &Eacute; Inv&aacute;lido Ou N&atilde;o Preenchido.");
                                }
                                if ($temp[0] == 2) {
                                    retorna("0+Verifique a Data de Nascimento onde " . $temp[1] . " &Eacute; Inv&aacute;lido.");
                                } else {
                                    retorna("1+" . $temp[1] . "+" . $temp[2]);
                                }
                                break;
                            case "editar":
                                $conteudo = new editarProfessor();
                                retorna("Professor+" . $conteudo->carregar());
                                break;
                            case "edit":
                                $conteudo = new formularioProfessor();
                                $banco = new bancoDadosProfessor();
                                retorna("Professor+" . $conteudo->carregar($banco->carregaformulario($dados)));
                                break;

                            case "listar":
                                $conteudo = new bancoDadosProfessor();
                                retorna($conteudo->listar($dados));
                                break;
                            case "excluir":
                                $conteudo = new bancoDadosProfessor();
                                retorna($conteudo->apagar($dados));
                                break;
                            case "importar":
                                $conteudo = new formularioProfessor();
                                retorna("Aluno+" . $conteudo->importar());
                                break;
                            case "importarXml":
                                $conteudo = new bancoDadosProfessor();
                                retorna("Aluno+" . $conteudo->importarXml($dados));
                                break;
                            case "gerarXml":
                                $conteudo = new bancoDadosProfessor();
                                retorna($conteudo->gerarXml($dados));
                                break;
                            default :
                                retorna("ERRo+ERRO");

                                break;
                        }
                    }
                    break;
                case'usuario':
                    if ($subop == null) {
                        $conteudo = new inicioUsuario();
                        retorna("Usuario+" . $conteudo->carregar());
                    } else {
                        switch ($subop) {
                            case 'incluir':
                                $conteudo = new formularioUsuario();
                                retorna("Usuario+" . $conteudo->carregar("§§§§§§§§§§§§0§"));
                                break;
                            case 'gravar':
                                $conteudo = new bancoDadosUsuario();
                                $temp = explode("+", $conteudo->gravar($dados));
                                if ($temp[0] == 0) {
                                    retorna("0+Campo " . $temp[1] . " &Eacute; Inv&aacute;lido Ou N&atilde;o Preenchido.");
                                }
                                if ($temp[0] == 2) {
                                    retorna("0+Verifique a Data de Nascimento onde " . $temp[1] . " &Eacute; Inv&aacute;lido.");
                                } 
                                if($temp[0]==3){
                                    retorna("0+".$temp[1]);
                                }else {
                                    retorna("1+" . $temp[1] . "+" . $temp[2]);
                                }
                                break;
                            case "editar":
                                $conteudo = new editarUsuario();
                                retorna("Usuario+" . $conteudo->carregar());
                                break;
                            case "edit":
                                $conteudo = new formularioUsuario();
                                $banco = new bancoDadosUsuario();
                                retorna("Usuario+" . $conteudo->carregar($banco->carregaformulario($dados)));
                                break;

                            case "listar":
                                $conteudo = new bancoDadosUsuario();
                                retorna($conteudo->listar($dados));
                                break;
                            case "excluir":
                                $conteudo = new bancoDadosUsuario();
                                retorna($conteudo->apagar($dados));
                                break;
                            case "importar":
                                $conteudo = new formularioUsuario();
                                retorna("Aluno+" . $conteudo->importar());
                                break;
                            case "importarXml":
                                $conteudo = new bancoDadosUsuario();
                                retorna("Aluno+" . $conteudo->importarXml($dados));
                                break;
                            case "gerarXml":
                                $conteudo = new bancoDadosUsuario();
                                retorna($conteudo->gerarXml($dados));
                                break;
                            default :
                                retorna("ERRo+ERRO");

                                break;
                        }
                    }
                    break;
                default :
                    retorna("erro+" . $opcao);
                    break;
            }
        } else {
            retorna("0+");
        }
        break;
}

function inicio() {
    if (!Session::getValue('logado')) {
        $conteudo = new inicio();
        retorna($conteudo->carregar());
    } else {
        loga(" ");
    }
}

function loga($var) {
    $conteudo = new menuInicial();
    $var.=$conteudo->carregar();
    retorna($var);
}

function retorna($retorna) {
    echo $retorna;
}
?>

